home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Visual Basic Controls
/
Visual Basic Controls.iso
/
vbcontrol
/
cstwnd
/
ccheck.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
1993-12-17
|
3KB
|
99 lines
#include "custctl.h"
#include "cCheck.h"
#include <edit.h>
#include <bstatic.h>
#include <windowsx.h>
char CCheckClassName[] = "CCHECK"; // class for new custom control
#include "ctlids.h"
/*******************************************************************
TCRadio - A New radio button class.
*******************************************************************/
TCCheck::TCCheck(PTWindowsObject AParent, int AnId,
LPSTR ATitle, int X, int Y, int W, int H,
PTModule AModule)
: TStateButton(AParent, AnId, ATitle, X, Y, W, H,
AModule)
{
On = LoadBitmap(DLLModule->hInstance, "CCHECK_ON_BMP");
Off = LoadBitmap(DLLModule->hInstance, "CCHECK_OFF_BMP");
Mask = LoadBitmap(DLLModule->hInstance, "CCHECK_MASK_BMP");
}
TCCheck::TCCheck(PTWindowsObject AParent, int ResourceId,
PTModule AModule)
: TStateButton(AParent, ResourceId, AModule)
{
On = LoadBitmap(DLLModule->hInstance, "CCHECK_ON_BMP");
Off = LoadBitmap(DLLModule->hInstance, "CCHECK_OFF_BMP");
Mask = LoadBitmap(DLLModule->hInstance, "CCHECK_MASK_BMP");
}
TCCheck::~TCCheck()
{
DeleteObject(On);
DeleteObject(Off);
DeleteObject(Mask);
}
LPSTR TCCheck::GetClassName()
{
return CCheckClassName;
}
void TCCheck::DrawOn(HDC DrawDC)
{
HDC CopyDC = CreateCompatibleDC(DrawDC);
HBITMAP Old = SelectBitmap(CopyDC, Mask);
BitBlt(DrawDC, 0, 0, 20, 20, CopyDC, 0, 0, SRCAND);
SelectBitmap(CopyDC, On);
BitBlt(DrawDC, 0, 0, 20, 20, CopyDC, 0, 0, SRCINVERT);
SetBkMode(DrawDC, TRANSPARENT);
SendMessage(Parent->HWindow, WM_CTLCOLOR,
(WPARAM)DrawDC, MAKELPARAM(HWindow,
CTLCOLOR_STATIC));
char Text[80];
GetWindowText(HWindow, Text, 80);
TextOut(DrawDC, 22, 2, Text, lstrlen(Text));
SelectBitmap(CopyDC, Old);
DeleteDC(CopyDC);
}
void TCCheck::DrawOff(HDC DrawDC)
{
HDC CopyDC = CreateCompatibleDC(DrawDC);
HBITMAP Old = SelectBitmap(CopyDC, Mask);
BitBlt(DrawDC, 0, 0, 20, 20, CopyDC, 0, 0, SRCAND);
SelectBitmap(CopyDC, Off);
BitBlt(DrawDC, 0, 0, 20, 20, CopyDC, 0, 0, SRCINVERT);
SetBkMode(DrawDC, TRANSPARENT);
SendMessage(Parent->HWindow, WM_CTLCOLOR,
(WPARAM)DrawDC, MAKELPARAM(HWindow,
CTLCOLOR_STATIC));
char Text[80];
GetWindowText(HWindow, Text, 80);
TextOut(DrawDC, 22, 2, Text, lstrlen(Text));
SelectBitmap(CopyDC, Old);
DeleteDC(CopyDC);
}
void TCCheck::GetWindowClass(WNDCLASS _FAR& WndClass)
{
TStateButton::GetWindowClass(WndClass);
WndClass.hbrBackground = NULL;
}